﻿using Caliburn.Micro;
using System;

namespace GetMan.Core.Models
{
    public class ParamsModel : PropertyChangedBase
    {
        public ParamsModel()
        {
            UniqueId = Guid.NewGuid().ToString("N");
        }


        /// <summary>
        /// 唯一标识Id
        /// </summary>
        private string _unique_id;
        public string UniqueId
        {
            get => _unique_id;
            set
            {
                _unique_id = value;
                NotifyOfPropertyChange(() => UniqueId);
            }
        }

        /// <summary>
        /// 是否选中
        /// </summary>
        private bool _checked;
        public bool IsChecked
        {
            get => _checked;
            set
            {
                _checked = value;
                NotifyOfPropertyChange(() => IsChecked);
            }
        }

        private string _key;
        public string Key
        {
            get => _key;
            set
            {
                _key = value;
                NotifyOfPropertyChange(() => Key);
            }
        }
        private string _value;
        public string Value
        {
            get => _value;
            set
            {
                _value = value;
                NotifyOfPropertyChange(() => Value);
            }
        }
        private string _description;
        public string Description
        {
            get => _description;
            set
            {
                _description = value;
                NotifyOfPropertyChange(() => Description);
            }
        }

        /// <summary>
        /// 是否显示TextBox Watermark
        /// </summary>
        private bool _showWaterMark;
        public bool ShowWaterMark
        {
            get => _showWaterMark;
            set
            {
                _showWaterMark = value;
                NotifyOfPropertyChange(() => ShowWaterMark);
            }
        }

        /// <summary>
        /// 是否显示CheckBox
        /// </summary>
        private bool _showCheckBox;
        public bool ShowCheckBox
        {
            get => _showCheckBox;
            set
            {
                _showCheckBox = value;
                NotifyOfPropertyChange(() => ShowCheckBox);
            }
        }

        /// <summary>
        /// 是否显示删除
        /// </summary>
        private bool _showBtnDel = false;
        public bool ShowBtnDel
        {
            get => _showBtnDel;
            set
            {
                _showBtnDel = value;
                NotifyOfPropertyChange(() => ShowBtnDel);
            }
        }
    }

}